Altri articoli sul numero 79 Articoli sullo stesso argomento Le prestazioni dell'hard disk sono definite da due insiemi di parametri: tempo di accesso e transfer rate. Il tempo di accesso si compone di due parti: latenza media (tanto minore quanto piu' alta e' la velocita' di rotazione, che nei dischi moderni di uso comune e' compresa tra 4500 e 7500 RPM - Rotazioni Per Minuto) e tempo di seek. Quest'ultimo e' definito da due misure: tempo di seek massimo (dal primo all'ultimo cilindro) e tempo di seek tra cilindri adiacenti. Spesso i produttori danno un singolo valore per il tempo di accesso, attorno ai 10 millisecondi; non c'e' una sola regola per calcolarlo, ma di solito e' il tempo totale (seek piu' latenza) necessario per accedere al primo settore del cilindro posto fisicamente ad un terzo del disco (es: se il disco ha 3000 cilindri, e' il cilindro 1000), quando la testina parte dal cilindro zero. Come prima approssimazione il tempo di accesso massimo assoluto (ancora espresso in millisecondi) si ottiene sottraendo dal valore dichiarato il tempo di latenza medio (30000 diviso per gli RPM) e moltiplicando il risultato per 3; infine si somma la latenza massima (il doppio esatto di quella media). Per alcuni modelli di hard disk bisogna moltiplicare ancora per 2 (accesso ad un settore difettoso riallocato, se vengono adottati alcuni tipi di gestione della riallocazione). Il transfer rate e' specificato in molti modi diversi. Se non sono fornite altre precisazioni il produttore dichiara quello "d'interfaccia" o "picco", pari alla massima velocita' di trasferimento dei dati tra buffer interno e host adapter in condizioni ideali. E' di 10 Mb/sec per i dischi SCSI2 fast e fino a 16,6 Mb/sec per quelli EIDE con interfaccia operante in "PIO Mode 4" o "DMA Multiword Mode 2"; non puo' mai essere raggiunto su un computer a causa della saturazione dei bus di espansione e del tempo di elaborazione dei comandi. L'interfaccia IDE degli A1200 e A4000 lavora solo in PIO Mode 0. Il transfer rate "interno" e' misurato in Mhz (o megabit al secondo, che in questo contesto sono la stessa cosa), ed e' la piu' alta cadenza di dati sostenibile dall'insieme elettronica/meccanica al lordo della correzione di errore e degli altri segnali di controllo. Dividendo per 9,10 o 11 (dipende dallo schema di modulazione adottato) si ottiene grossolanamente il transfer rate "sostenuto" massimo, che e' valido solo per la prima zona, cioe' per i primi cilindri del disco. Sugli ultimi cilindri, dove per mantenere costante la densita' di memorizzazione il numero di settori e' inferiore, il transfer rate sostenuto cala circa al 50% - 60% di questo valore. Di conseguenza, se si esegue un programma come "Diskspeed" sull'ultima partizione di un hard disk si ottiene un valore sensibilmente inferiore a quello della prima, a parita' di tutti gli altri fattori come i tassi di frammentazione e riempimento della partizione. Un aspetto spesso sottovalutato e' il tempo di elaborazione dei comandi. Nei dischi EIDE o IDE e' generalmente inferiore a quello degli SCSI (ma esistono molte eccezioni). E' uno dei responsabili del crollo di prestazioni che si manifesta quando per caricare i dati si eseguono molti accessi di piccola entita' invece di pochi ma grandi (l'altro e' l'algoritmo di gesione della cache interna). Poiche' e' un parametro ancora poco noto, non tutti i produttori si stanno impegnando per ridurlo: ci sono grosse differenze tra disco e disco. Sfortunatamente la maggior parte dei programmi per Amiga carica i dati a blocchi di appena 4 kilobyte, quindi degrada notevolmente le prestazioni del sistema a dischi. Chi scrive programmi che manipolano grosse quantita' di dati farebbe bene a modificare le opzioni di default del compilatore. La natura della RAM da cui provengono i dati (o devono essere inseriti) e' fondamentale per le prestazioni; nella rubrica Transaction si e' parlato a piu' riprese degli aspetti teorici. Qualche mese fa abbiamo anche spiegato su queste pagine come CPU e scheda acceleratrice influenzano il comportamento dell'hard disk (sia con controller interno che su scheda), poiche' cambiano le temporizzazioni di boot e il numero di stati di attesa necessari per ogni trasferimento dati. Anche la modalita' di funzionamento delle cache ha importanza. Infine, quando il controller lavora in DMA, il transfer rate massimo sara' limitato anche da tempo di elaborazione del comando e velocita' del suo DMA controller. Ai fattori che limitano il transfer rate "grezzo" dell'hardware si aggiungono i vari strati di software per la gestione del disco, riuducendolo ulteriormente. Il primo strato e' il device. Usando il sistema operativo non e' possibile un accesso legale al controller a livello piu' basso (quindi non c'e' modo di conoscere il vero transfer rate "fisico"). Al di sopra opera il filesystem: con il sistema operativo e' fornito FFS, ma per ottenere le migliori prestazioni bisogna ricorrere a prodotti commerciali o shareware. Di FFS esistono molte versioni; le piu' vecchie oltre ad essere lente non funzionano bene con il 68040 (provocano corruzione sporadica dei dati).